[INFO] fetching crate kql-language-tools 0.1.0...
[INFO] checking kql-language-tools-0.1.0 against try#fceb2de603f0807f9049222f3f612ed51ed8f9dc for pr-157576
[INFO] extracting crate kql-language-tools 0.1.0 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate kql-language-tools 0.1.0
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate kql-language-tools 0.1.0
[INFO] tweaked toml for crates.io crate kql-language-tools 0.1.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate kql-language-tools 0.1.0 on toolchain fceb2de603f0807f9049222f3f612ed51ed8f9dc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fceb2de603f0807f9049222f3f612ed51ed8f9dc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate kql-language-tools 0.1.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fceb2de603f0807f9049222f3f612ed51ed8f9dc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b9557288f3f4021b6afe77d2c5f4772bda69c943745ba63c9223243c71d8bd57
[INFO] running `Command { std: "docker" "start" "b9557288f3f4021b6afe77d2c5f4772bda69c943745ba63c9223243c71d8bd57", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b9557288f3f4021b6afe77d2c5f4772bda69c943745ba63c9223243c71d8bd57" "/opt/rustwide/cargo-home/bin/cargo" "+fceb2de603f0807f9049222f3f612ed51ed8f9dc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b9557288f3f4021b6afe77d2c5f4772bda69c943745ba63c9223243c71d8bd57", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b9557288f3f4021b6afe77d2c5f4772bda69c943745ba63c9223243c71d8bd57" "/opt/rustwide/cargo-home/bin/cargo" "+fceb2de603f0807f9049222f3f612ed51ed8f9dc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling kql-language-tools v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking jiff v0.2.16
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking libloading v0.8.9
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr] warning: kql-language-tools@0.1.0: Native library not found, attempting to build...
[INFO] [stderr] warning: kql-language-tools@0.1.0: 
[INFO] [stderr] warning: kql-language-tools@0.1.0: =====================================================
[INFO] [stderr] warning: kql-language-tools@0.1.0: .NET SDK not found - cannot build native library
[INFO] [stderr] warning: kql-language-tools@0.1.0: =====================================================
[INFO] [stderr] warning: kql-language-tools@0.1.0: 
[INFO] [stderr] warning: kql-language-tools@0.1.0: The kql-language-tools crate requires a native library built from .NET.
[INFO] [stderr] warning: kql-language-tools@0.1.0: 
[INFO] [stderr] warning: kql-language-tools@0.1.0: Options:
[INFO] [stderr] warning: kql-language-tools@0.1.0: 
[INFO] [stderr] warning: kql-language-tools@0.1.0: 1. Install .NET 8.0+ SDK and rebuild:
[INFO] [stderr] warning: kql-language-tools@0.1.0:    - macOS: brew install dotnet
[INFO] [stderr] warning: kql-language-tools@0.1.0:    - Linux: https://docs.microsoft.com/dotnet/core/install/linux
[INFO] [stderr] warning: kql-language-tools@0.1.0:    - Windows: https://dotnet.microsoft.com/download
[INFO] [stderr] warning: kql-language-tools@0.1.0: 
[INFO] [stderr] warning: kql-language-tools@0.1.0: 2. Set KQL_LANGUAGE_TOOLS_PATH to a pre-built library:
[INFO] [stderr] warning: kql-language-tools@0.1.0:    export KQL_LANGUAGE_TOOLS_PATH=/path/to/KqlLanguageFfiNE.so
[INFO] [stderr] warning: kql-language-tools@0.1.0: 
[INFO] [stderr] warning: kql-language-tools@0.1.0: 3. Download pre-built binaries from releases (if available)
[INFO] [stderr] warning: kql-language-tools@0.1.0: 
[INFO] [stderr] warning: kql-language-tools@0.1.0: Target platform: linux-x64 (KqlLanguageFfiNE.so)
[INFO] [stderr] warning: kql-language-tools@0.1.0: =====================================================
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking env_filter v0.1.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stdout] warning: implementation of an `unsafe` trait
[INFO] [stdout]    --> src/loader.rs:178:1
[INFO] [stdout]     |
[INFO] [stdout] 178 | unsafe impl Send for LoadedLibrary {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W unsafe-code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implementation of an `unsafe` trait
[INFO] [stdout]    --> src/loader.rs:186:1
[INFO] [stdout]     |
[INFO] [stdout] 186 | unsafe impl Sync for LoadedLibrary {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 199 |             unsafe { Library::new(path) }.map_err(|e| Error::library_load_failed(path, e))?;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:208:31
[INFO] [stdout]     |
[INFO] [stdout] 208 |           let init: KqlInitFn = unsafe {
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 209 | |             *library
[INFO] [stdout] 210 | |                 .get(symbols::KQL_INIT.as_bytes())
[INFO] [stdout] 211 | |                 .map_err(|_| Error::SymbolNotFound {
[INFO] [stdout] 212 | |                     symbol: symbols::KQL_INIT.to_string(),
[INFO] [stdout] 213 | |                 })?
[INFO] [stdout] 214 | |         };
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:216:37
[INFO] [stdout]     |
[INFO] [stdout] 216 |           let cleanup: KqlCleanupFn = unsafe {
[INFO] [stdout]     |  _____________________________________^
[INFO] [stdout] 217 | |             *library
[INFO] [stdout] 218 | |                 .get(symbols::KQL_CLEANUP.as_bytes())
[INFO] [stdout] 219 | |                 .map_err(|_| Error::SymbolNotFound {
[INFO] [stdout] 220 | |                     symbol: symbols::KQL_CLEANUP.to_string(),
[INFO] [stdout] 221 | |                 })?
[INFO] [stdout] 222 | |         };
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:224:52
[INFO] [stdout]     |
[INFO] [stdout] 224 |           let validate_syntax: KqlValidateSyntaxFn = unsafe {
[INFO] [stdout]     |  ____________________________________________________^
[INFO] [stdout] 225 | |             *library
[INFO] [stdout] 226 | |                 .get(symbols::KQL_VALIDATE_SYNTAX.as_bytes())
[INFO] [stdout] 227 | |                 .map_err(|_| Error::SymbolNotFound {
[INFO] [stdout] 228 | |                     symbol: symbols::KQL_VALIDATE_SYNTAX.to_string(),
[INFO] [stdout] 229 | |                 })?
[INFO] [stdout] 230 | |         };
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:232:49
[INFO] [stdout]     |
[INFO] [stdout] 232 |           let get_last_error: KqlGetLastErrorFn = unsafe {
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 233 | |             *library
[INFO] [stdout] 234 | |                 .get(symbols::KQL_GET_LAST_ERROR.as_bytes())
[INFO] [stdout] 235 | |                 .map_err(|_| Error::SymbolNotFound {
[INFO] [stdout] 236 | |                     symbol: symbols::KQL_GET_LAST_ERROR.to_string(),
[INFO] [stdout] 237 | |                 })?
[INFO] [stdout] 238 | |         };
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:241:69
[INFO] [stdout]     |
[INFO] [stdout] 241 |           let validate_with_schema: Option<KqlValidateWithSchemaFn> = unsafe {
[INFO] [stdout]     |  _____________________________________________________________________^
[INFO] [stdout] 242 | |             library
[INFO] [stdout] 243 | |                 .get(symbols::KQL_VALIDATE_WITH_SCHEMA.as_bytes())
[INFO] [stdout] 244 | |                 .ok()
[INFO] [stdout] 245 | |                 .map(|s| *s)
[INFO] [stdout] 246 | |         };
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:248:60
[INFO] [stdout]     |
[INFO] [stdout] 248 |           let get_completions: Option<KqlGetCompletionsFn> = unsafe {
[INFO] [stdout]     |  ____________________________________________________________^
[INFO] [stdout] 249 | |             library
[INFO] [stdout] 250 | |                 .get(symbols::KQL_GET_COMPLETIONS.as_bytes())
[INFO] [stdout] 251 | |                 .ok()
[INFO] [stdout] 252 | |                 .map(|s| *s)
[INFO] [stdout] 253 | |         };
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:255:68
[INFO] [stdout]     |
[INFO] [stdout] 255 |           let get_classifications: Option<KqlGetClassificationsFn> = unsafe {
[INFO] [stdout]     |  ____________________________________________________________________^
[INFO] [stdout] 256 | |             library
[INFO] [stdout] 257 | |                 .get(symbols::KQL_GET_CLASSIFICATIONS.as_bytes())
[INFO] [stdout] 258 | |                 .ok()
[INFO] [stdout] 259 | |                 .map(|s| *s)
[INFO] [stdout] 260 | |         };
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:303:9
[INFO] [stdout]     |
[INFO] [stdout] 303 |         unsafe { (self.cleanup)() };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:413:22
[INFO] [stdout]     |
[INFO] [stdout] 413 |         let result = unsafe { (lib.init)() };
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:419:17
[INFO] [stdout]     |
[INFO] [stdout] 419 |                 unsafe { (lib.get_last_error)(error_buf.as_mut_ptr(), error_buf.len() as i32) };
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/validator.rs:94:13
[INFO] [stdout]     |
[INFO] [stdout]  94 | /             unsafe {
[INFO] [stdout]  95 | |                 (self.lib.validate_syntax)(
[INFO] [stdout]  96 | |                     query_bytes.as_ptr(),
[INFO] [stdout]  97 | |                     query_len,
[INFO] [stdout] ...   |
[INFO] [stdout] 101 | |             }
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/validator.rs:152:13
[INFO] [stdout]     |
[INFO] [stdout] 152 | /             unsafe {
[INFO] [stdout] 153 | |                 validate_fn(
[INFO] [stdout] 154 | |                     query_bytes.as_ptr(),
[INFO] [stdout] 155 | |                     query_len,
[INFO] [stdout] ...   |
[INFO] [stdout] 161 | |             }
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/validator.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 | /             unsafe {
[INFO] [stdout] 219 | |                 classify_fn(
[INFO] [stdout] 220 | |                     query_bytes.as_ptr(),
[INFO] [stdout] 221 | |                     query_len,
[INFO] [stdout] ...   |
[INFO] [stdout] 225 | |             }
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/validator.rs:272:13
[INFO] [stdout]     |
[INFO] [stdout] 272 | /             unsafe {
[INFO] [stdout] 273 | |                 let (schema_ptr, schema_len) = match &schema_json {
[INFO] [stdout] 274 | |                     Some(json) => (json.as_ptr(), json.len() as c_int),
[INFO] [stdout] 275 | |                     None => (std::ptr::null(), 0),
[INFO] [stdout] ...   |
[INFO] [stdout] 287 | |             }
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/validator.rs:402:13
[INFO] [stdout]     |
[INFO] [stdout] 402 |             unsafe { (self.lib.get_last_error)(buffer.as_mut_ptr(), buffer.len() as c_int) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implementation of an `unsafe` trait
[INFO] [stdout]    --> src/loader.rs:178:1
[INFO] [stdout]     |
[INFO] [stdout] 178 | unsafe impl Send for LoadedLibrary {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W unsafe-code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: implementation of an `unsafe` trait
[INFO] [stdout]    --> src/loader.rs:186:1
[INFO] [stdout]     |
[INFO] [stdout] 186 | unsafe impl Sync for LoadedLibrary {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 199 |             unsafe { Library::new(path) }.map_err(|e| Error::library_load_failed(path, e))?;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:208:31
[INFO] [stdout]     |
[INFO] [stdout] 208 |           let init: KqlInitFn = unsafe {
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 209 | |             *library
[INFO] [stdout] 210 | |                 .get(symbols::KQL_INIT.as_bytes())
[INFO] [stdout] 211 | |                 .map_err(|_| Error::SymbolNotFound {
[INFO] [stdout] 212 | |                     symbol: symbols::KQL_INIT.to_string(),
[INFO] [stdout] 213 | |                 })?
[INFO] [stdout] 214 | |         };
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:216:37
[INFO] [stdout]     |
[INFO] [stdout] 216 |           let cleanup: KqlCleanupFn = unsafe {
[INFO] [stdout]     |  _____________________________________^
[INFO] [stdout] 217 | |             *library
[INFO] [stdout] 218 | |                 .get(symbols::KQL_CLEANUP.as_bytes())
[INFO] [stdout] 219 | |                 .map_err(|_| Error::SymbolNotFound {
[INFO] [stdout] 220 | |                     symbol: symbols::KQL_CLEANUP.to_string(),
[INFO] [stdout] 221 | |                 })?
[INFO] [stdout] 222 | |         };
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:224:52
[INFO] [stdout]     |
[INFO] [stdout] 224 |           let validate_syntax: KqlValidateSyntaxFn = unsafe {
[INFO] [stdout]     |  ____________________________________________________^
[INFO] [stdout] 225 | |             *library
[INFO] [stdout] 226 | |                 .get(symbols::KQL_VALIDATE_SYNTAX.as_bytes())
[INFO] [stdout] 227 | |                 .map_err(|_| Error::SymbolNotFound {
[INFO] [stdout] 228 | |                     symbol: symbols::KQL_VALIDATE_SYNTAX.to_string(),
[INFO] [stdout] 229 | |                 })?
[INFO] [stdout] 230 | |         };
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:232:49
[INFO] [stdout]     |
[INFO] [stdout] 232 |           let get_last_error: KqlGetLastErrorFn = unsafe {
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 233 | |             *library
[INFO] [stdout] 234 | |                 .get(symbols::KQL_GET_LAST_ERROR.as_bytes())
[INFO] [stdout] 235 | |                 .map_err(|_| Error::SymbolNotFound {
[INFO] [stdout] 236 | |                     symbol: symbols::KQL_GET_LAST_ERROR.to_string(),
[INFO] [stdout] 237 | |                 })?
[INFO] [stdout] 238 | |         };
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:241:69
[INFO] [stdout]     |
[INFO] [stdout] 241 |           let validate_with_schema: Option<KqlValidateWithSchemaFn> = unsafe {
[INFO] [stdout]     |  _____________________________________________________________________^
[INFO] [stdout] 242 | |             library
[INFO] [stdout] 243 | |                 .get(symbols::KQL_VALIDATE_WITH_SCHEMA.as_bytes())
[INFO] [stdout] 244 | |                 .ok()
[INFO] [stdout] 245 | |                 .map(|s| *s)
[INFO] [stdout] 246 | |         };
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:248:60
[INFO] [stdout]     |
[INFO] [stdout] 248 |           let get_completions: Option<KqlGetCompletionsFn> = unsafe {
[INFO] [stdout]     |  ____________________________________________________________^
[INFO] [stdout] 249 | |             library
[INFO] [stdout] 250 | |                 .get(symbols::KQL_GET_COMPLETIONS.as_bytes())
[INFO] [stdout] 251 | |                 .ok()
[INFO] [stdout] 252 | |                 .map(|s| *s)
[INFO] [stdout] 253 | |         };
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:255:68
[INFO] [stdout]     |
[INFO] [stdout] 255 |           let get_classifications: Option<KqlGetClassificationsFn> = unsafe {
[INFO] [stdout]     |  ____________________________________________________________________^
[INFO] [stdout] 256 | |             library
[INFO] [stdout] 257 | |                 .get(symbols::KQL_GET_CLASSIFICATIONS.as_bytes())
[INFO] [stdout] 258 | |                 .ok()
[INFO] [stdout] 259 | |                 .map(|s| *s)
[INFO] [stdout] 260 | |         };
[INFO] [stdout]     | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:303:9
[INFO] [stdout]     |
[INFO] [stdout] 303 |         unsafe { (self.cleanup)() };
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:413:22
[INFO] [stdout]     |
[INFO] [stdout] 413 |         let result = unsafe { (lib.init)() };
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/loader.rs:419:17
[INFO] [stdout]     |
[INFO] [stdout] 419 |                 unsafe { (lib.get_last_error)(error_buf.as_mut_ptr(), error_buf.len() as i32) };
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/validator.rs:94:13
[INFO] [stdout]     |
[INFO] [stdout]  94 | /             unsafe {
[INFO] [stdout]  95 | |                 (self.lib.validate_syntax)(
[INFO] [stdout]  96 | |                     query_bytes.as_ptr(),
[INFO] [stdout]  97 | |                     query_len,
[INFO] [stdout] ...   |
[INFO] [stdout] 101 | |             }
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/validator.rs:152:13
[INFO] [stdout]     |
[INFO] [stdout] 152 | /             unsafe {
[INFO] [stdout] 153 | |                 validate_fn(
[INFO] [stdout] 154 | |                     query_bytes.as_ptr(),
[INFO] [stdout] 155 | |                     query_len,
[INFO] [stdout] ...   |
[INFO] [stdout] 161 | |             }
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/validator.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 | /             unsafe {
[INFO] [stdout] 219 | |                 classify_fn(
[INFO] [stdout] 220 | |                     query_bytes.as_ptr(),
[INFO] [stdout] 221 | |                     query_len,
[INFO] [stdout] ...   |
[INFO] [stdout] 225 | |             }
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/validator.rs:272:13
[INFO] [stdout]     |
[INFO] [stdout] 272 | /             unsafe {
[INFO] [stdout] 273 | |                 let (schema_ptr, schema_len) = match &schema_json {
[INFO] [stdout] 274 | |                     Some(json) => (json.as_ptr(), json.len() as c_int),
[INFO] [stdout] 275 | |                     None => (std::ptr::null(), 0),
[INFO] [stdout] ...   |
[INFO] [stdout] 287 | |             }
[INFO] [stdout]     | |_____________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of an `unsafe` block
[INFO] [stdout]    --> src/validator.rs:402:13
[INFO] [stdout]     |
[INFO] [stdout] 402 |             unsafe { (self.lib.get_last_error)(buffer.as_mut_ptr(), buffer.len() as c_int) };
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.75s
[INFO] running `Command { std: "docker" "inspect" "b9557288f3f4021b6afe77d2c5f4772bda69c943745ba63c9223243c71d8bd57", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b9557288f3f4021b6afe77d2c5f4772bda69c943745ba63c9223243c71d8bd57", kill_on_drop: false }`
[INFO] [stdout] b9557288f3f4021b6afe77d2c5f4772bda69c943745ba63c9223243c71d8bd57
